package com.skiving.cloud.develop.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;

import java.io.Serial;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 应用设计记录 实体类。
 *
 * @author skivingcloud
 * @since 2025-03-25
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("应用设计记录")
@Table("sys_business_designer")
public class SysBusinessDesigner implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @ApiModelProperty("主键")
    private String id;

    /**
     * 版本
     */
    @ApiModelProperty("版本")
    private Long version;

    /**
     * 应用设计编码
     */
    @ApiModelProperty("应用设计编码")
    private String designerCode;

    /**
     * 应用设计名称
     */
    @ApiModelProperty("应用设计名称")
    private String designerName;

    /**
     * 业务类型：sys_business_type.type_code
     */
    @ApiModelProperty("业务类型：sys_business_type.type_code")
    private String typeCode;

    /**
     * 是否含流程
     */
    @ApiModelProperty("是否含流程")
    private String hasTask;

    /**
     * 流程定义编码
     */
    @ApiModelProperty("流程定义编码")
    private String taskDefCode;

    /**
     * 新建时表单
     */
    @ApiModelProperty("新建时表单")
    private String newFormId;

    /**
     * 修改时表单
     */
    @ApiModelProperty("修改时表单")
    private String modFormId;

    /**
     * 详情表单
     */
    @ApiModelProperty("详情表单")
    private String detailFormId;

    /**
     * 菜单路径
     */
    @ApiModelProperty("菜单路径")
    private String menuTxt;

    /**
     * 是否自定义接口
     */
    @ApiModelProperty("是否自定义接口")
    private String customizeApi;

    /**
     * 新增接口url
     */
    @ApiModelProperty("新增接口url")
    private String addApiUrl;

    /**
     * 修改接口url
     */
    @ApiModelProperty("修改接口url")
    private String updateApiUrl;

    /**
     * 表单数据加载接口
     */
    @ApiModelProperty("表单数据加载接口")
    private String detailApiUrl;

    /**
     * 新增时表单数据
     */
    @Column(ignore = true)
    private String newFormJson;

    /**
     * 修改时表单数据
     */
    @Column(ignore = true)
    private String modFormJson;

    /**
     * 详情时表单数据
     */
    @Column(ignore = true)
    private String detailFormJson;
}
